In this Internet era, popularity of playing streaming audio and video over networks are increasing by leaps and bounds. With this increase, there is a need for optimizing data transferred from a server to a user such that user's experience is maximized even if network conditions during playback are inconsistent. The experience of the user is optimized by choosing a quality level for encoding the audio and the video portions of a video playback such that the video can be transferred and re-constructed while preserving required quality of the video content.
In general, the quality level is generally dictated by bit rate specified for encoded video portions of input stream. A higher bit rate implies that a large amount of information about an original video is encoded and retained. The large amount of information leads to a more accurate reproduction of the original video presented during the video playback. On the same lines, a lower bit rate implies that less information about the original video is encoded and retained. This leads to a less accurate reproduction of the original video presented during the video playback. The bit rate is specified for encoding the video and is based on several factors such as network condition, start up latency, tolerance to glitching, etc. A network connection which has the ability to transfer huge amount of data implies that the higher bit rate can be specified for the video that is subsequently transferred over a network connection.
Nowadays, currently available multi-bit rate video streaming systems use a constant bit rate approach to encode each alternative video stream. But, in practical scenarios, a typical video generally include scenes having a wide variety of visual complexity. Thus, the constant bit rate approach does not efficiently encode video segments with different quality. Moreover, the constant bit rate approach unnecessarily spends many bits for encoding low complexity video segments. Further, the high complexity scenes are allocated few bits. Thus, the constant bit rate approach to encode alternative streams results in undesirable and inconsistent video quality for Internet streaming.
In light of the above discussion, there is a need for a method and system which overcomes all the above stated disadvantages.